package leetcode.editor.data;

public class ArrayBinaryTreeDemo {
    public static void main(String[] args) {
        int [] arr = {1,2,3,4,5,6,7};
        ArrayBinaryTree binaryTree = new ArrayBinaryTree(arr);
        binaryTree.preOrder();
    }
}

//编写一个顺序存储二叉遍历树
class ArrayBinaryTree {
    private int[] arr;  //存储数据节点的数组

    public ArrayBinaryTree(int[] arr) {
        this.arr = arr;
    }
    public void preOrder (){
        this.preOrder(0);
    }
    /**
     * 编写一个方法,完成一个前序遍历
     * @param index 数组的下标
     */
    public void preOrder (int index) {
        //如果数组为空
        if (arr == null &&arr.length==0) {
            System.out.println("数组为空");
            return;
        }
        //输出当前节点元素
        System.out.println(arr[index]);
        //向左递归遍历
        if ((index*2+1)<arr.length) {
            preOrder(2*index+1);
        }
//        向右递归
        if ((index*2+2)<arr.length) {
            preOrder(2*index+2);
        }
    }
}
